⌨️ vim ショートカットキー
https://scrapbox.io/files/62e9177b2356840020c6c165.png
https://scrapbox.io/files/62e917664994c6002217cbf8.png
モーション移動
3w や 2b を使いこなす!
vim-visualstar
👉カーソル位置の単語を検索
*
g*
g#
targets.vim
👉
clever-f.vim
👉fキーの拡張
f
F
t
T
quick-scope
👉fキーの拡張
vim-grepper
👉
fzf.vim
👉
⭕️vim-move で行を丸ごと移動
👉 cmd + h / j / k / l
⭕️columnskip で縦移動をラクに
👉 shift + j / k
⭕️vim-matchup で対応する括弧に移動
👉 % で対応する括弧へ移動
👉 [% / ]% で外側の開閉単語へ移動
👉 z% で開単語の中に移動
👉 dz% で次の開単語まで移動
⭕️vim-easymotion でカーソル移動を爆速にする
👉 space + h / j / k / l
編集機能
supertab
👉
⭕️vim-sandwich で括弧やクォーテーションで囲まれた文字を編集
👉 saiw((sandwich の略) で foo が (foo) に
👉 sd((sandwich d elete の略) で (foo) が foo に
👉 sr(‘(sandwich r ename の略) で (foo) が ‘foo’ に
⭕️nerdcommenter でコメントアウト
👉 space + cc でコメントアウト
👉 space + ci でコメントアウトを解除
ReplaceWithreRister
👉
far.vim
👉
vim-repeat
👉
vim-splitjoin.vim
👉一行コードと複数行コードを入れ替え
その他
dashboard-nvim
👉
vert h 〇〇 で〇〇のヘルプページを横に開く
vim-translator
👉翻訳
leader + tl, leader + tw, leader + tr, leader + tx
ファイル操作
ZZ で上書き保存、vi 終了
:w で内容を保存
:x で内容を保存、vi 終了
:q! で保存せずに強制終了
ctrl + G で現在位置の確認
:! + 〇〇 で外部コマンド(〇〇)の実行
モード
i でインサートモード(ctrl + T でインデント追加、ctrl + d でインデント削除)
I で行頭に移動してインサートモード
A で行末に移動してインサートモード
o で新しい行を追加してインサートモード
cc で一行を削除してインサートモード
C でカーソル位置から行末までを削除してインサートモード
s でカーソル位置の一文字を削除してインサートモード
cw で単語を削除してインサートモード
ciw でカーソルがどこに合っても単語を削除してインサートモード
r、R で上書きモード
v でビジュアルモード(コードを選択するモード、y で選択範囲のコピー、d で選択範囲の削除)
V で行選択のビジュアルモード
ctrl + v で矩形(くけい)選択してビジュアルモード
vip で段落を選択してビジュアルモード
vap で空行を含めた段落を選択してビジュアルモード
インサートモードで ctrl + c / [ でインサートモードを抜ける
esc でコマンドモード
ctrl + i で tabキー
カーソル移動
w で次の単語の先頭に移動
W で次の単語の先頭に大きく移動
e で次の単語の末尾に移動
E で次の単語の末尾に大きく移動
b で前の単語の先頭に移動
B で前の単語の先頭に大きく移動
ge で前の単語の末尾に移動
gE で前の単語の末尾に大きく移動
0 で行頭
⭕_ で行頭
^ で単語の行頭
$ で行末
⭕% で対応する括弧に移動
ctrl + u で半画面👆に移動
crl + d で半画面👇に移動
zt でカーソルが画面上端に来るようにスクロール
zz でカーソルが画面中央に来るようにスクロール
zb でカーソルが画面下端に来るようにスクロール
crl + o で古いカーソル位置に戻る
crl + i で新しいカーソル位置に戻る
g + ; で古い変更履歴に戻る
g + , で新しい変更履歴に進む
' でカーソル移動
インサートモードで ctrl + j で改行
インサートモードで ctrl + o でノーマルモードのコマンドを一度だけ入力
行移動
gg で最初の行に移動
G で最後の行に移動
「数字」 + G(gg) で「数字」行目に移動
:「数字」で「数字」行目に移動
{ / } で段落毎に移動
⭕️::H で画面上の最初の行(Home)::
⭕️::M で画面上の中央の行(Middle)::
⭕️::L で画面上の最後の行(Last)::
タブ
::gt で次のタブに移動::
::gT で前のタブに移動::
検索と置換
::f + 〇 で順方向に 〇 に移動::
::F + 〇 で逆方向に 〇 に移動::
t + 〇 で順方向に 〇 に移動
T + 〇 で順方向に 〇 に移動
/ で文字検索(n で次へ、N で前へ)
::* でカーソル下の単語検索(👇方向に検索)::
::# でカーソル下の単語検索(👆方向に検索)::
:::%s/hage/hoge/g で単語の置換(hage を hoge に置換、% はファイル全体を表す)::
::r でカーソル位置の単語を置換::
編集と削除
::. で直前の変更を繰り返す
::cmd + Enter でノーマルモードのまま新しい行を追加する
u で戻る(cmd + z)
ctrl + r で進む(cmd + shift + z)
x でカーソル右の1文字を削除(cmd + d)
::X でカーソル左の1文字を削除(commnad + h)
::インサートモードで ctrl + h でカーソル左の1文字を削除
::インサートモードで ctrl + w でカーソル左の1単語を削除
::インサートモードで ctrl + u でカーソル位置から行頭までを削除
dw でカーソル位置(カーソルよりも右)の単語削除
dd で一行切り取り
d0 でカーソル位置から行頭まで削除
D でカーソル位置から行末まで切り取り
::d$ でカーソル位置から行末まで削除
:「数字」 d で「数字」行の削除
::「数字」dd でカーソル位置から「数字」行分削除
::* dap でカーソル位置から段落まで削除::
::cit で HTML、scriptタグの内部を削除、編集::
::dit で HTML、scriptタグの内部を削除::
::ci’ でシングルクオートで囲まれた文字列を削除、編集::
::ca’ でシングルクオートごと削除、編集::
::ea で現在の単語の後に文字をインサート::
> でインデント追加
<< でインデント削除
⭕️::= でインデントを揃える::
ggVG で全文選択
コピペ
yy で現在の行をコピー
::yw でカーソル位置の単語をコピー::
yit で HTMLタグの内部をコピー
::yiw で単語のコピー::
::「数字」yy でカーソル位置から「数字」行分コピー::
p でカーソルの場所にペースト
yy5p で現在の行をコピーして下に5行追加する
gv で直前の選択範囲を再選択
特殊文字
ctrl + v return で改行文字の入力
ウィンドウ(バッファの内容を表示するための表示領域のこと)
:vsplit で画面を左右に分割
:::e filename で現在のウィンドウにファイルを開く::
:e test*.cc でワイルドカードを指定してファイルを開く
:close で画面を閉じる
ctrl + w h で👈のウィンドウへ移動
ctrl + w l で👉のウィンドウへ移動
バッファ(vim がファイルを読み込んだ後にファイル内容をコピーするメモリ領域のこと)
:ls で読み込まれているバッファの確認
:buffers で編集中のバッファ一覧
:bn で次のバッファに移動
:bp で前のバッファに移動
ctrl + ^ で前のバッファに移動
:bd でバッファを削除
カスタムショートカット
⭕️gg=G でインデントを揃える
プラグイン
nvim-treesitter で構文解析をして豊富なコードハイライトを実装する
quickrun で vim を閉じずに編集中のファイルを素早く実行する
👉space + go
fugitive で vim から Gitコマンドを実行
👉
prettier で vim から Prettier を呼び出す
👉
nerdtree で vim からディレクトリ・ファイルを操作する
👉ctrl + t nerdtree の表示・非表示
👉ctrl + f ファイルの検索
⭕️nerdcommenter でコメントアウト
👉 space + cc でコメントアウト
👉 space + ci でコメントアウトを解除
⭕️vim-matchup で対応する括弧に移動
👉 [% / ]% で外側の開閉単語へ移動
👉 z% で開単語の中に移動
👉 dz% で次の開単語まで移動
⭕️vim-sandwich で括弧やクォーテーションで囲まれた文字を編集
👉 saiw((sandwich の略) で foo が (foo) に
👉 sd((sandwich d elete の略) で (foo) が foo に
👉 sr(‘(sandwich r ename の略) で (foo) が ‘foo’ に
⭕️vim-easymotion でカーソル移動を爆速にする
👉 space + h / j / k / l
vim-grep
👉
vim-quickscope でカーソル横移動を拡張
👉f / F
⭕️vim-move で行の移動
👉 cmd + h / j / k / l
⭕️columnskip で縦移動をラクに
👉 shift + j / k
vim-easy-align でコードの整形
👉ga
vim-expand-region で選択箇所を増やす
👉+ / _
Convenient Plugin
vim-repeat
ドットリピート拡張
popup.nvim
プラグイン拡張
plenary.nvim
プラグイン拡張
nvim-notify
copilot.vim
github copilot
uninstall fzf and fzf.vim
telescope.nvim
ファジーファインダー
telescope-frecency.nvim
ファジーファインダーをファイル順に表示
telescope-symbols.nvim
ファジーファインダーで絵文字などのシンボルを検索
nvim-gps
nvim-navic
ステータスライン上にカーソル位置の関数名を表示
bufferline.nvim
バッファー(ファイルがコピーされたメモリ領域)ライン
vim-illuminate
カーソルが当たった箇所の単語をハイライトする
nvim-colorizer.lua
カラーコード部分に色を付ける
todo-comments.nvim
TODO コメントなどを目立たせる
numbers.vim
インサートモード時に相対行を絶対行に変える
sidebar.nvim
サイドバーにファイル一覧や git 状態を表示
nvim-scrollbar
スクロールバー
vim-edgemotion
縦方向の区切り位置にジャンプ移動
vim-columnmove
縦方向で文字がある場所までジャンプ移動
CamelCaseMotion
w での移動を camel case 区切りで移動
nvim-bqf
quickfix が使いやすくなる
vscode では cmd + . で quickfix を実行
nvim-ts-autotag
HTML タグなどを自動で閉じる
noegit
Git クライアント
diffview.nvim
neogit と連携すると diff を表示する
git-conflict.nvim
コンフリクトをわかりやすく表示する
gitsigns.nvim
git の状態を表示する
nnn.nvim
nnn を vim で使う
nvim-surround